Skip to content

feat: 2026 modernize#62

Merged
nickmaccarthy merged 4 commits intomasterfrom
feat/modernize
Apr 13, 2026
Merged

feat: 2026 modernize#62
nickmaccarthy merged 4 commits intomasterfrom
feat/modernize

Conversation

@nickmaccarthy
Copy link
Copy Markdown
Owner

@nickmaccarthy nickmaccarthy commented Apr 13, 2026

Modernizes python-datemath to a current 2026 Python project layout and removes the remaining legacy install paths.

This MR replaces setup.py/setup.cfg/requirements.txt with a single pyproject.toml, adopts uv for local development and builds, migrates the old unittest file into a pytest test suite, and adds centralized ruff and mypy configuration. CI and release workflows were updated to use current GitHub Actions plus uv, and the Docker image now builds from a current Python base image instead of the old Python 3.9 + setup.py flow.

It also includes a small cleanup pass in the library itself: the unit alias handling is simpler, timezone parsing is a bit more robust with current Arrow/Python behavior, and the tests now use stdlib zoneinfo rather than pytz.

Validation performed:

uv run pytest
uv run ruff check .
uv run mypy
uv build
uv run twine check dist/*
uv run --with pip-audit pip-audit
Main changes:

add pyproject.toml and uv.lock
remove legacy packaging files: setup.py, setup.cfg, requirements.txt
migrate tests from tests.py to tests/test_datemath.py
modernize CI/release workflows in .github/workflows
update Dockerfile and add .dockerignore
Notes:

minimum supported Python version is now 3.11
test coverage was migrated and hardened, not replaced wholesale
pip-audit reported no known Python package vulnerabilities after the migration

Add releaserc
Add pre-commit

@nickmaccarthy nickmaccarthy merged commit 279a706 into master Apr 13, 2026
5 checks passed
@nickmaccarthy nickmaccarthy deleted the feat/modernize branch April 13, 2026 00:47
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant